On the Practicality of Practical Byzantine Fault Tolerance
نویسندگان
چکیده
Byzantine Fault Tolerant (BFT) systems are considered to be state of the art with regards to providing reliability in distributed systems. Despite over a decade of research, however, BFT systems are rarely used in practice. In this paper, we describe our experience, from an application developer’s perspective, trying to leverage the publicly available, highlystudied and extended “PBFT” middleware (by Castro and Liskov), to provide provable reliability guarantees for an electronic voting application with high security and robustness needs. We describe several obstacles we encountered and drawbacks we identified in the PBFT approach. These include some that we tackled, such as lack of support for dynamic client management and leaving state management completely up to the application. Others still remaining include the lack of robust handling of non-determinism, lack of support for webbased applications, lack of support for stronger cryptographic primitives, and more. We find that, while many of the obstacles could be overcome, they require significant engineering effort and time and their performance implications for the end-application are unclear. An application developer is thus unlikely to be willing to invest the time and effort to do so to leverage the BFT approach.
منابع مشابه
Tangaroa: a Byzantine Fault Tolerant Raft
We propose a Byzantine Fault Tolerant variant of the Raft consensus algorithm, BFTRaft, inspired by the original Raft[1] algorithm and the Practical Byzantine Fault Tolerance algorithm[2]. BFT Raft maintains the safety, fault tolerance, and liveness properties of Raft in the presence of Byzantine faults, while also aiming towards to Raft’s goal of simplicity and understandability. We have imple...
متن کاملRecent Results on Fault-Tolerance Consensus in Message-Passing Networks
This paper surveys recent results on fault-tolerant consensus in message-passing networks. We focus on two categories of works: (i) new problem formulations (including input domain, fault model, network model...etc.), and (ii) practical applications. For the second part, we focus on Crash Fault-Tolerant (CFT) systems that use Paxos or Raft, and Byzantine Fault-Tolerant (BFT) systems. We also br...
متن کاملLila: A Cheating-Resistant Distributed Game Engine
In this paper we present Lila, a distributed multiplayer game engine that is Byzantine faulttolerant. Lila allows games to be written with little regard for issues such as move replication, rejection of cheating moves, allowing new players to join the game, allowing players to leave the game, and removing cheating or networkpartitioned players from the game. Lila is based on Practical Byzantine...
متن کاملInteraction Patterns for Byzantine Fault Tolerance Computing
In this paper, we present a catalog of application interaction patterns with the corresponding message ordering and execution rules for Byzantine fault tolerance computing. For each pattern, a set of rules are defined to determine whether or not an inbound message should be ordered and in what particular order, and which set of messages should be delivered sequentially, concurrently, or selecti...
متن کاملPractical Synchronous Byzantine Consensus
We present new protocols for Byzantine state machine replication and Byzantine agreement in the synchronous and authenticated setting. The celebrated PBFT state machine replication protocol tolerates f Byzantine faults in an asynchronous setting using 3f + 1 replicas, and has since been studied or deployed by numerous works. In this work, we improve the Byzantine fault tolerance to n = 2f + 1 b...
متن کامل